using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Gratamira.CapaNegocio;
using Infragistics.Win.UltraWinEditors;

namespace Gratamira.Presentacion
{
    public partial class frmMaeUnidad : frmBaseMaestra, IBaseMaestra
    {
        private Unidad mUnidad = new Unidad();
        private BindingSource fuenteEnlace = new BindingSource();

        public frmMaeUnidad(estadoPantalla pModoPantalla)
        {
            InitializeComponent();
            base.Estado = pModoPantalla;
        }

        public frmMaeUnidad(Unidad pUnidad, estadoPantalla pModoPantalla)
        {
            InitializeComponent();
            mUnidad = pUnidad;
            base.Estado = pModoPantalla;
        }

        public override void deshabilitarControles()
        {
            //No permite modificar el contenido de los controles
            txtCodigo.Enabled = false;
            txtNombre.Enabled = false;
        }

        public override void habilitarControles()
        {
            //Permite modificar el contenido de los controles
            if (base.Estado == estadoPantalla.Insertar)
            {
                txtCodigo.Enabled = true;
            }
            txtNombre.Enabled = true;
        }

        public override void unirDatosClaseForma()
        {
            fuenteEnlace.DataSource = mUnidad;
            txtCodigo.DataBindings.Add("Text", fuenteEnlace, "UnidadID");
            txtNombre.DataBindings.Add("Text", fuenteEnlace, "Nombre");
        }

        //public override void unirDatosFormaClase()
        //{
        //    mUnidad.UnidadID = txtCodigo.Text;
        //    mUnidad.Nombre = txtNombre.Text;
        //}

        public override bool salvarCambios()
        {
            mUnidad.UsuarioCreacion = Usuario.NombreUsuario;
            mUnidad.UsuarioModificacion = Usuario.NombreUsuario;
            return mUnidad.insertarUnidad();

        }

        public override void actualizarCambios()
        {
            mUnidad.UsuarioModificacion = Usuario.NombreUsuario;
            mUnidad.actulizarUnidad();
        }

        public override void limpiarControles()
        {
            txtCodigo.Text = "";
            txtNombre.Text = "";
        }

        public override void leerDatosAuditoria(out string pUsuaCrea, out string pFechCrea, out string pUsuaModi, out string pFechModi)
        {
            pUsuaCrea = mUnidad.UsuarioCreacion;
            pUsuaModi = mUnidad.UsuarioModificacion;
            pFechCrea = mUnidad.FechaCreacion;
            pFechModi = mUnidad.FechaModificacion;
        }

        public override bool hayDatosModificados()
        {
            return mUnidad.Modificada;
        }

        public override bool verificarDatos()
        {
            if (utilidadesPresentacion.verificarContenido(txtCodigo, epUnidad) && utilidadesPresentacion.verificarContenido(txtNombre,epUnidad))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        private void txtCodigo_Enter(object sender, EventArgs e)
        {
            txtCodigo.SelectAll();
        }

        private void txtNombre_Enter(object sender, EventArgs e)
        {
            txtNombre.SelectAll();
        }

     }
}